1. Field of the Invention
The present invention relates generally to computer system that includes a database communication system and a method for communicating with a database. More particularly, the present invention relates to computer system and its associated software for accessing data stored in a database wherein the database may be located either remotely or locally from the user's computing device executing such software. The present invention also operates independently of database type.
2. Description of the Prior Art
It is well known in the art to use computer software to access data, which is stored in a database locally on, for example, the hard disk of a personal computer or on removable media, such as an optical disk. Such software typically makes numerous calls to the database in performing any transaction therewith. When accessing the database locally, i.e., on the same device that is executing the software or on a local area network (“LAN”), such numerous calls present little or no problem. However, when the device executing the software is located remotely from the database, for example, when the database is stored on a remote device and accessed via the Internet, a myriad of problems arise.
One such problem is the limited bandwidth available to the average user, who connects his personal computer to the Internet via a dial-up connection, i.e., via a modem.
An additional problem with the conventional method of accessing a database via the Internet stems from the use of “browser” software. Browser software may be appropriate for use in, for example, web navigation, consumer transactions, information retrieval and dissemination, and help and documentation systems. However, software for business applications, such as in the banking, insurance, securities and accounting disciplines, based on a browser model are generally inadequate in several respects. For developers authoring such business applications, the browser model adds a level of complexity to the authoring process. Generally, the browser model is based on transmitting raw data in addition to graphics files and programming instructions necessary for displaying such data and graphics files. However, for large, complex business-oriented applications, it is highly inefficient to transfer program code other than for an initial installation or subsequent application upgrade. As the use of the Internet increases and as Internet applications become increasingly complex, minimizing unnecessary traffic across the network will be critical for achieving maximum performance. Finally, current efforts to develop ever more sophisticated browser software, plug-in components and the like tend to create instabilities and compatibility problems.
There are numerous benefits gained by storing data locally and accessing the same without resort to Internet communication. One benefit is the execution speed and communication speed achieved.
One example of a business application ideally suited for data storage at a location remote from the user's location and access of the database over the Internet is a so-called “e-commerce”, or Internet shopping, system. The data stored and accessed in such a system would include, for example, product descriptions, product pictures, video clips, audio files, cross-reference information and current pricing. The database may further include customer records and accounts, prior purchase data, inventory records and order tracking, It is not uncommon, however, for a substantial amount of this data to be static, that is, unchanging over time or changing only occasionally. Such static data may be product descriptions and product pictures. A relatively small amount of data changes dynamically over time. Such dynamic data would include up-to-date pricing and inventory status. Given that available bandwidth is usually insufficient for instantaneous performance, it would be beneficial to store the static data, which does not require frequent updating, locally, relative to the end user, and to store the dynamic data, which would require frequent and/or real-time updating, remotely, relative to the end user. Thus, an end user accessing the database would retrieve a significant majority of the data from a local source, without resorting to Internet communication, while retrieving a very minor portion through the Internet. Clearly, the user would attain a substantial performance advantage over a user accessing all data via the Internet.